﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;


namespace ConsoleApplication1
{
    class Patient
    {
        public int id { get; set; }
        public string name;
        public string surname;
        public string patronymic;
        public DateTime dateOfBirth;
        private string p;

        public Patient(string p)
        {
            // TODO: Complete member initialization
            this.p = p;
        }

        public Patient()
        {
            // TODO: Complete member initialization
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
           // Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy"));
            {
                if (args.Length == 0)
                {
                    System.Console.WriteLine("Введите для добавления: patients -add -name: -surname: -patronymic: -dob:");
                    System.Console.WriteLine("Введите для удавелния: -delete -id:");
                    System.Console.WriteLine("Введите для редактирования: patients -edit -id: -name: -surname:");
                    System.Console.WriteLine("Введите для просмотра: -list");
                }
          else if (args[0] == "-add")
                {
                    if (args.Length == 1 )
                {
                    System.Console.WriteLine("Введите для добавления: patients -add -name: -surname: -patronymic: -dob:");
                }
                else
                {
                   Patient Patient1 = new Patient();
                    {

                        for (int i = 1; i < args.Length; i++)
                        {
                            if ((args[i].Substring(0, args[i].IndexOf(":") + 1) != "-name:") & (args[i].Substring(0, args[i].IndexOf(":") + 1) != "-surname:") & (args[i].Substring(0, args[i].IndexOf(":") + 1) != "-patronymic:") & (args[i].Substring(0, args[i].IndexOf(":") + 1) != "-dob:"))
                            {
                                System.Console.WriteLine("не верно введено: -name: -surname: -patronymic: -dob:");
                            }
                            else if (args[i].Substring(args[i].IndexOf(":") + 1).Length == 0)
                            {
                                System.Console.WriteLine("Что-то не введено -- введите");
                            }
                            else
                            {

                                if (args[i].StartsWith("-name:"))
                                {
                                        Patient1.name = args[i].Substring(args[i].IndexOf(":") + 1);
                                }

                                if (args[i].StartsWith("-surname:"))
                                {
                                        Patient1.surname = args[i].Substring(args[i].IndexOf(":") + 1);
                                }


                                if (args[i].StartsWith("-patronymic:"))
                                {
                                        Patient1.patronymic = args[i].Substring(args[i].IndexOf(":") + 1);
                                }
                                if (args[i].StartsWith("-dob:"))
                                {
                                        Patient1.dateOfBirth = Convert.ToDateTime(args[i].Substring(args[i].IndexOf(":") + 1));
                                }
                                if (i == args.Length-1)
                                {
                                    DataAccess aA1 = new DataAccess();
                                    aA1.AppPatient(Patient1);
                                }


                            }

                        }
                      //  DataAccess aA1 = new DataAccess();
                      //  aA1.AppPatient(Patient1);
                    }
                   // DataAccess aA1 = new DataAccess();
                    //aA1.AppPatient(Patient1);
                    //if (args[1].Substring(0, 6) != "-name:" || args[2].Substring(0, 9) != "-surname:" || args[3].Substring(0, 12) != "-patronymic:" || args[4].Substring(0, 5) != "-dob:")

                    /*
                    Patient1.name = args[1].Substring(args[1].IndexOf(":") + 1); // проинициализированил, класс Patient!
                    Patient1.surname = args[2].Substring(args[2].IndexOf(":") + 1);
                    Patient1.patronymic = args[3].Substring(args[3].IndexOf(":") + 1);
                    Patient1.dateOfBirth = Convert.ToDateTime(args[4].Substring(args[4].IndexOf(":") + 1));
                    */
                    //goto hello;

   
                }

            }
            
            else if (args[0] == "-delete")
            {
             
                Patient Patient1 = new Patient();
                if ((args[1].Substring(args[1].IndexOf(":") + 1)).Length == 0)
                {
                    System.Console.WriteLine("Введите для удавелния: -delete -id:");
                }
                else if (args[1].StartsWith("-id:"))
                {
                    Patient1.id = Convert.ToInt32(args[1].Substring(args[1].IndexOf(":") + 1));
                    DataAccess DA1 = new DataAccess();
                    DA1.deletePatient(Patient1);
                }
                else
                {
                    System.Console.WriteLine("Введите для удавелния: -delete -id:");
                }
                


            }
            
            else if (args[0] == "-list")
            {
               //Patient patient1 = new Patient();
                DataAccess dA1 = new DataAccess();

                ArrayList l = dA1.list();

                foreach (Patient patient in l)
              {
                  Console.WriteLine(patient.id + ", " + patient.name + ", " + patient.surname + ", " + patient.patronymic + ", " + patient.dateOfBirth.ToString("dd/MM/yyyy "));
              }
              

            }

            else if (args[0] == "-edit")
            {
                Patient Patient1 = new Patient();
                    Patient1.id = Convert.ToInt32(args[1]);

                    for (int i = 2; i < args.Length; i++)
                    {
                        if (args[i].StartsWith("-name:"))
                        {
                            Patient1.name = args[i].Substring(args[i].IndexOf(":") + 1);
                        }
                        if (args[i].StartsWith("-surname:"))
                        {
                            Patient1.surname = args[i].Substring(args[i].IndexOf(":") + 1);
                        }
                        if (args[i].StartsWith("-patronymic:"))
                        {
                            Patient1.patronymic = args[i].Substring(args[i].IndexOf(":") + 1);
                        }
                        if (args[i].StartsWith("-dob:"))
                        {
                            Patient1.dateOfBirth = Convert.ToDateTime(args[i].Substring(args[i].IndexOf(":") + 1));
                        }

                    DataAccess aA1 = new DataAccess();
                    aA1.UpdatePatient(Patient1);
                }
            }


            else if (args[0] != "-add" && args[0] != "-delete" && args[0] != "-list" && args[0] != "-edit")
            {
                System.Console.WriteLine("Введите для добавления: patients -add -name: -surname: -patronymic: -dob:");
                System.Console.WriteLine("Введите для удавелния: -delete -id:");
                System.Console.WriteLine("Введите для редактирования: patients -edit -id: -name: -surname:");
                System.Console.WriteLine("Введите для просмотра: -list");
            }




        }
           //Console.ReadLine();
        }

    }
}
